//axios基础封装
import axios from 'axios'

// 在其他文件里面引进request就可以使用了，这个只是基本配置，在使用的时候是可以覆盖基本配置的。
let requests = axios.create({
  // 基础路径
  //   baseURL: 'http://pcapi-xiaotuxian-front-devtest.itheima.net',
  baseURL: '',
  // 请求不能超过5秒
  timeout: 5000,
  method: '',
  headers: {}
})
/**
 * 配置请求拦截器
 */
requests.interceptors.request.use(
  config => {
    // 判断当项目在开发环境，就加上.json后缀调用本地的数据，
    // 这样做可以让项目中开发的时候不需要调用服务器数据来进行接口测试,只需将接口数据写在本地并进行接口调用即可--例如 工会诉求中屏项目
    console.log(import.meta.env)
    if (import.meta.env.DEV === true) {
      console.log('现在是在开发环境')
      config.url += '.json'
    } else {
      // 当在生产环境就调用服务器数据
      config.url = '/dbapi/api-proxy/dbapi-apiServer/api' + config.url
    }
    // console.log(config.url, 'config')
    return config
  },
  error => {
    // 请求错误 一般http状态码以4开头，常见：401超时，404 not found 多为前端浏览器错误
    console.log('request_err' + error)
    return Promise.reject(error)
  }
)

/**
 * axios响应式拦截器---当服务器手动请求之后，做出响应（响应成功）会执行的当欻欻能
 */
requests.interceptors.response.use(
  res => {
    // 响应成功做的事情
    return res
  },
  error => {
    // 响应错误,一般http状态码以5开头，500系统错误，502系统重启等，偏向于服务端返回的报错
    console.log('response_err' + error)
    return Promise.reject(error)
  }
)

export default requests
